home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-02 / nrpas13.zip / EIGSRT.PAS < prev    next >
Pascal/Delphi Source File  |  1991-04-29  |  751b  |  31 lines

  1. PROCEDURE eigsrt(VAR d: glnp; VAR v: glnpnp; n: integer);
  2. (* Programs using routine EIGSRT must define the types
  3. TYPE
  4.    glnp = ARRAY [1..np] OF real;
  5.    glnpnp = ARRAY [1..np,1..np] OF real;
  6. where np is the physical dimension of the arrays to be used (v and d) *)
  7. VAR
  8.    k,j,i: integer;
  9.    p: real;
  10. BEGIN
  11.    FOR i := 1 TO n-1 DO BEGIN
  12.       k := i;
  13.       p := d[i];
  14.       FOR j := i+1 TO n DO BEGIN
  15.          IF (d[j] >= p) THEN BEGIN
  16.             k := j;
  17.             p := d[j]
  18.          END
  19.       END;
  20.       IF (k <> i) THEN BEGIN
  21.          d[k] := d[i];
  22.          d[i] := p;
  23.          FOR j := 1 TO n DO BEGIN
  24.             p := v[j,i];
  25.             v[j,i] := v[j,k];
  26.             v[j,k] := p
  27.          END
  28.       END
  29.    END
  30. END;
  31.